<?php
    if (!$_POST) {
		if (isset($_SESSION['constructore']['inserirPerguntaInscricao'])) {
			$this->getRegistro()->set('textoPergunta', $_SESSION['constructore']['inserirPerguntaInscricao']['textoPergunta']);
			$this->getRegistro()->set('tipoPergunta', $_SESSION['constructore']['inserirPerguntaInscricao']['tipoPergunta']);
			$this->getRegistro()->set('numeroAlternativas', $_SESSION['constructore']['inserirPerguntaInscricao']['numeroAlternativas']);
			$this->getRegistro()->set('alternativas', $_SESSION['constructore']['inserirPerguntaInscricao']['alternativas']);
			
			unset($_SESSION['constructore']['inserirPerguntaInscricao']);
		}
		
		if (defined('PARAMETRO_2')) {
			$ordena 	=	PARAMETRO_2;
		}
		else {
			$ordena 	=	'ordenapergunta';
		}
		
		if (defined('PARAMETRO_3')) {
			$ordem 	=	PARAMETRO_3;
			
			if ($ordem != 'asc' && $ordem != 'desc') {
				$ordem 	=	'asc';
			}
		}
		else {
			$ordem 	=	'asc';
		}
		
		$ordemInversa	=	$ordem == 'asc' ? 'desc' : 'asc';
		
		if (defined('PARAMETRO_4')) {
			$pagina =	PARAMETRO_4;
		}
		else {
			$pagina =	'pagina1';
		}
		
		$paginaAtual	=	str_replace('pagina', '', $pagina);
		
		$infoPerguntasPadrao	=	PerguntaInscricao::getPerguntasInscricao('padrao', $ordena, $ordem, $paginaAtual);
		
		$listaPerguntas		=	$infoPerguntasPadrao['listaPerguntas'];
		$qtdPerguntas		=	$infoPerguntasPadrao['qtdPerguntas'];
		$qtdPaginas			=	$infoPerguntasPadrao['qtdPaginas'];
		
		$this->getRegistro()->set('ordena', $ordena);
		$this->getRegistro()->set('ordemAtual', $ordem);
		
		switch ($ordena) {
			case 'ordenapergunta':
				$this->getRegistro()->set('ordemPergunta', $ordemInversa);
				$this->getRegistro()->set('ordemTipo', 'asc');
				break;
			case 'ordenatipo':
				$this->getRegistro()->set('ordemPergunta', 'asc');
				$this->getRegistro()->set('ordemTipo', $ordemInversa);
				break;
		}
		
		$this->getRegistro()->set('listaPerguntas', $listaPerguntas);
		$this->getRegistro()->set('qtdPerguntas', $qtdPerguntas);
		$this->getRegistro()->set('qtdPaginas', $qtdPaginas);
		$this->getRegistro()->set('paginaAtual', $paginaAtual);
		
    	$this->exibir('administracaoperguntasinscricao.php');
    }
	else {
		if (isset($_POST['btnApagarPerguntaInscricao'])) {
			$perguntasPorApagar	=	array();
			
			foreach ($_POST as $chave => $post) {
				if (preg_match('/^checkPergunta[0-9]+$/', $chave)) {
					array_push($perguntasPorApagar, $post);
				}
			}
			
			if (empty($perguntasPorApagar)) {
				$strMensagem 	=	"Você deve selecionar pelo menos uma pergunta para apagar.";
				$_SESSION['constructore']['mensagens']['erroApagarPergunta']	=	$strMensagem;
				redireciona($_SESSION['constructore']['URLOrigem']);
			}
			else {
				$apagou	=	true;
				foreach($perguntasPorApagar as $idPergunta) {
					if (!PerguntaInscricao::removerPerguntaInscricao('padrao', $idPergunta))
						$apagou = false;
				}
				
				$strMensagem 	=	$apagou ? "Todas as perguntas foram apagadas com sucesso." : "Algumas perguntas não puderam ser apagadas. Tente novamente.";
				$_SESSION['constructore']['mensagens']['resultadoApagarPerguntas']	=	$strMensagem;
				
				redireciona($_SESSION['constructore']['URLOrigem']);
			}
		}
		else {
			$textoPergunta	=	$_POST['textareaPerguntaInscricao'];
			$tipoPergunta	=	$_POST['radioTipoPerguntaInscricao'];
			$alternativas 	=	array();
			
			foreach ($_POST as $chave => $post) {
				if (preg_match('/^inputAlternativa[0-9]+$/', $chave)) {
					$alternativas[intval(str_replace('inputAlternativa', '', $chave))]	=	$post;
				}
			}
			
			if (isset($_POST['btnAdicionarAlternativasPerguntaInscricao'])) {
				if (sizeof($alternativas) <= 15) {
					$_SESSION['constructore']['inserirPerguntaInscricao']['numeroAlternativas'] =	sizeof($alternativas) + 5;
				}
				else {
					$_SESSION['constructore']['inserirPerguntaInscricao']['numeroAlternativas']	=	sizeof($alternativas);
					$strMensagem 	=	"Limite de 20 alternativas por pergunta.";
					$_SESSION['constructore']['mensagens']['limiteAlternativas']	=	$strMensagem;
				}
				$_SESSION['constructore']['inserirPerguntaInscricao']['textoPergunta']		=	$textoPergunta;
				$_SESSION['constructore']['inserirPerguntaInscricao']['tipoPergunta']		=	$tipoPergunta;
				$_SESSION['constructore']['inserirPerguntaInscricao']['alternativas']		=	$alternativas;
				redireciona(array('administracao', 'perguntasinscricao'));
			}
			else {
				$valida	=	true;
				
				if (!validaAlfaNumerico($textoPergunta)) {
					$valida 		=	false;
					$strMensagem	=	"Preencha corretamente o campo <span class='negrito'>Pergunta</span>.";
					$_SESSION['constructore']['mensagens']['erroPerguntaInscricao']	=	$strMensagem;
				}
				
				if (!isset($_POST['radioTipoPerguntaInscricao'])) {
					$valida 		=	false;
					$strMensagem	=	"Selecione o <span class='negrito'>Tipo da Pergunta</span>.";
					$_SESSION['constructore']['mensagens']['erroTipoPerguntaInscricao']	=	$strMensagem;
				}
				
				if (!$valida) {
					$_SESSION['constructore']['inserirPerguntaInscricao']['textoPergunta']		=	$textoPergunta;
					$_SESSION['constructore']['inserirPerguntaInscricao']['tipoPergunta']		=	$tipoPergunta;
					$_SESSION['constructore']['inserirPerguntaInscricao']['numeroAlternativas']	=	0;
					$_SESSION['constructore']['inserirPerguntaInscricao']['alternativas']		=	null;
					
					redireciona(array('administracao', 'perguntasinscricao'));
				}
				else {
					if ($tipoPergunta == 'discursiva' || $tipoPergunta == 'simnao') {
						if (PerguntaInscricao::inserePerguntaInscricao('padrao', $textoPergunta, $tipoPergunta))
							$_SESSION['constructore']['mensagens']['sucessoInserirPergunta'] = "Pergunta inserida com sucesso.";
						redireciona(array('administracao', 'perguntasinscricao'));
					}
					else {
						$preenchidas 			=	0;
						$validaAlternativas 	=	true;
						foreach ($alternativas as $numero => $alternativa) {
							if ($alternativa != '') {
								if (!validaAlfaNumerico($alternativa)) {
									$validaAlternativas 	=	false;
									$strMensagem 	=	"Preencha corretamente a <span class='negrito'>Alternativa " . $numero . "</span>.";
									$_SESSION['constructore']['mensagens']['erroAlternativa' . $numero]	=	$strMensagem;
								}
								else {
									$preenchidas++;
								}
							}
						}
						
						if (!$validaAlternativas) {
							$_SESSION['constructore']['inserirPerguntaInscricao']['numeroAlternativas'] =	sizeof($alternativas);
							$_SESSION['constructore']['inserirPerguntaInscricao']['textoPergunta']		=	$textoPergunta;
							$_SESSION['constructore']['inserirPerguntaInscricao']['tipoPergunta']		=	$tipoPergunta;
							$_SESSION['constructore']['inserirPerguntaInscricao']['alternativas']		=	$alternativas;
							redireciona(array('administracao', 'perguntasinscricao'));
							exit;
						}
						
						if ((sizeof($alternativas) < 2) || $preenchidas < 2) {
							$_SESSION['constructore']['inserirPerguntaInscricao']['textoPergunta']		=	$textoPergunta;
							$_SESSION['constructore']['inserirPerguntaInscricao']['tipoPergunta']		=	$tipoPergunta;
							$_SESSION['constructore']['inserirPerguntaInscricao']['alternativas']		=	$alternativas;
							$_SESSION['constructore']['inserirPerguntaInscricao']['numeroAlternativas']	=	5;
							
							$strMensagem	=	"Você deve inserir no mínimo 2 <span class='negrito'>Alternativas</span>.";
							$_SESSION['constructore']['mensagens']['erroTipoPerguntaInscricao']	=	$strMensagem;
							
							redireciona(array('administracao', 'perguntasinscricao'));
						}
						else {
							if (PerguntaInscricao::inserePerguntaInscricao('padrao', $textoPergunta, $tipoPergunta, $alternativas))
								$_SESSION['constructore']['mensagens']['sucessoInserirPergunta'] = "Pergunta inserida com sucesso.";
							redireciona(array('administracao', 'perguntasinscricao'));
						}
					}
				}
			}
		}
	}
?>